package E_2024;

import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/*
    幼儿园里有一个放倒的圆桶，它是一个线性结构，允许在桶的右边将篮球放入，
    可以在桶的左边和右边将篮球取出。每个篮球有单独的编号，老师可以连续放入一个或多个篮球，
    小朋友可以在桶左边或右边将篮球取出，当桶只有一个篮球的情况下，必须从左边取出。
    如老师按顺序放入1、2、3、4、5共有5 个编号的篮球，那么小朋友可以依次取出编号为1、2、3、4、5或者 3、1、2.4、5 编号的篮球，无法取出 5、1、3、2、4 编号的篮球
    其中 3、1、2、4、5 的取出场景为:
    ->连续放入1、2、3号
    ->从右边取出3号
    ->从左边取出1号
    ->从左边取出2号
    ->放入4号
    ->从左边取出4号
    ->放入5号
    ->从左边取出5号
    简答起见，我们以 L 表示左，R表示右，此时取出篮球的依次取出序列为“RLLLL”。
输入描述
    每次输入包含一个 测试用例
    1.第一行的数字作为老师依次放入的篮球编号
    2.第二行的数字作为要检查是否能够按照放入的顺序取出给定的篮球的编号，其中篮球的编号用逗号进行分隔.
    其中篮球编号用逗号进行分隔。
输出描述
    对干每个篮球的取出席列，
 */
public class E_200_23 {
    public static void main(String[] args) {
        ans(new int[]{1,2,3,4,5}, new int[]{3,1,2,4,5});
        ans(new int[]{1,2,3,4,5}, new int[]{5,1,3,2,4});
    }
    public static void ans(int[] arr, int[] ss){
        LinkedList<Integer> queue = new LinkedList<>();
        int index = 0;
        StringBuilder sb = new StringBuilder();
        for (int ar : arr) {
            queue.add(ar);
            while (!queue.isEmpty() && queue.peek() == ss[index]){
                queue.poll();
                sb.append("L");
                index++;
            }
            while (!queue.isEmpty() && queue.peekLast() == ss[index]){
                queue.pollLast();
                sb.append("R");
                index++;
            }
        }
        System.out.println(sb);
    }
}
